package cl.solidit.geomanagement.web.service;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cl.solidit.geomanagement.persistance.PersonaDAO;
import cl.solidit.geomanagement.persistance.PropiedadDAO;
import cl.solidit.geomanagement.persistance.VisitaDAO;
import cl.solidit.geomanagement.persistance.model.Persona;
import cl.solidit.geomanagement.persistance.model.Propiedad;
import cl.solidit.geomanagement.persistance.model.Usuario;
import cl.solidit.geomanagement.persistance.model.Visita;

@Service
public class RegisterVisitsService {

	@Autowired
	private VisitaDAO visitaDAO;
	@Autowired
	private PersonaDAO personaDAO;
	@Autowired
	private PropiedadDAO propiedadDAO;
	@Autowired
	private RegisterPersonsService registerPersonsService;

	public void registrarVisita(Persona persona, HttpServletRequest request,
			Long numeroPropiedad, Visita visita) {
		Usuario u = personaDAO.findByRut(
				(String) request.getSession().getAttribute("rut")).getUsuario();
		registerPersonsService.registrarPersona(persona);
		Propiedad p = propiedadDAO.consultarPropiedad(numeroPropiedad);
		p.setUltimaVisita(new Date());
		visita.setPropiedad(p);
		visita.setCliente(persona);
		visita.setFechaRegistro(new Date());
		visita.setFechaProgramada(new Date());
		visita.setAgente(u);
		visitaDAO.create(visita);
	}

}
